Your goal is to generate plan in domain specific language (DSL) for biology protocols.
The DSL specifications related to the operations involved in the experiment are provided. The DSL specification of each operation consists of multiple patterns, each pattern is an operation execution paradigm.
Output each step of the plan in the form of a DSL program. Each DSL program is a dictionary. The final plan consists of the program of each step and is returned in a json block, without any annotation.

Here is an example of how to generate plan in DSL for a molecular biology protocol.

EXAMPLE:

DNA extraction from avian faeces stored in ethanol

Here are some extra details about the protocol:

This molecular biology protocol aims to extract DNA from blue tit (Cyanistes caeruleus) faeces stored in ethanol using the Qiagen QIAamp DNA Stool Kit with custom modifications. These modifications include homogenization in lysis buffer, increased lysis times with additional Proteinase K, and larger buffer volumes to improve DNA yields.

example plan in DSL:

{
    "Operation": "Pour",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["1X_TAE_Buffer"]
    },
    "Execution": {
        "DeviceType": "Erlenmeyer Flask",
        "Config": {
            "Volume": "100mL"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["TAE_Buffer-1"]
    }
},
{
    "Operation": "Weigh",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose"]
    },
    "Execution": {
        "DeviceType": "Weighing Scale",
        "Config": {
            "Quantity": "1g"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose-1"]
    }
},
{
    "Operation": "Add",
    "Precond": {
        "SlotArgNum": 2,
        "SlotArg": ["Agarose-1", "TAE_Buffer-1"]
    },
    "Execution": {
        "DeviceType": "Erlenmeyer Flask",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_TAE_Buffer-1"]
    }
},
{
    "Operation": "Heat",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose_TAE_Buffer-1"]
    },
    "Execution": {
        "DeviceType": "Microwave",
        "Config": {
            "Power": "High",
            "Duration": "2 minutes"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_TAE_Buffer-2"]
    }
},
{
    "Operation": "Cool",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose_TAE_Buffer-2"]
    },
    "Execution": {
        "DeviceType": "Lab Bench",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_TAE_Buffer-3"]
    }
},
{
    "Operation": "Assemble",
    "Precond": {
        "SlotArgNum": 3,
        "SlotArg": ["Gel_Tray", "Clamp", "Well_Plates"]
    },
    "Execution": {
        "DeviceType": "",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Gel_Tray_Setup-1"]
    }
},
{
    "Operation": "Pour",
    "Precond": {
        "SlotArgNum": 2,
        "SlotArg": ["Agarose_TAE_Buffer-3", "Gel_Tray_Setup-1"]
    },
    "Execution": {
        "DeviceType": "Gel Tray",
        "Config": {
            "Duration": "10 minutes"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_Gel-1"]
    }
},
{
    "Operation": "Remove",
    "Precond": {
        "SlotArgNum": 2,
        "SlotArg": ["Agarose_Gel-1", "Well_Plates"]
    },
    "Execution": {
        "DeviceType": "",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_Gel-2"]
    }
},
{
    "Operation": "Place",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose_Gel-2"]
    },
    "Execution": {
        "DeviceType": "Gel Electrophoresis Apparatus",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_Gel-3"]
    }
},
{
    "Operation": "Pour",
    "Precond": {
        "SlotArgNum": 2,
        "SlotArg": ["1X_TAE_Buffer", "Agarose_Gel-3"]
    },
    "Execution": {
        "DeviceType": "",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Electrophoresis_Setup-1"]
    }
},
{
    "Operation": "Pipette",
    "Precond": {
        "SlotArgNum": 2,
        "SlotArg": ["1kb_DNA_Ladder_with_Loading_Dye", "Electrophoresis_Setup-1"]
    },
    "Execution": {
        "DeviceType": "Micropipette",
        "Config": {
            "Volume": "5μL",
            "Well_Position": "Edge well"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Electrophoresis_Setup-2"]
    }
},
{
    "Operation": "Pipette",
    "Precond": {
        "SlotArgNum": 2,
        "SlotArg": ["Sample_DNA_with_Loading_Dye", "Electrophoresis_Setup-2"]
    },
    "Execution": {
        "DeviceType": "Micropipette",
        "Config": {
            "Volume": "20μL"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Electrophoresis_Setup-3"]
    }
},
{
    "Operation": "Set",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Electrophoresis_Setup-3"]
    },
    "Execution": {
        "DeviceType": "Amplifier",
        "Config": {
            "Voltage": "70V"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Electrophoresis_Setup-4"]
    }
},
{
    "Operation": "Run",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Electrophoresis_Setup-4"]
    },
    "Execution": {
        "DeviceType": "Electrophoresis Apparatus",
        "Config": {
            "Duration": "45 minutes"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Electrophoresis_Setup-5"]
    }
},
{
    "Operation": "Remove",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Electrophoresis_Setup-5"]
    },
    "Execution": {
        "DeviceType": "Gel Tray",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_Gel-4"]
    }
},
{
    "Operation": "Stain",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose_Gel-4"]
    },
    "Execution": {
        "DeviceType": "Staining Bin",
        "Config": {
            "Solution": "1% Ethidium Bromide",
            "Duration": "15 minutes"
        }
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Agarose_Gel-5"]
    }
},
{
    "Operation": "Image",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose_Gel-5"]
    },
    "Execution": {
        "DeviceType": "UV Transilluminator",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Gel_Image-1"]
    }
},
{
    "Operation": "Dispose",
    "Precond": {
        "SlotArgNum": 1,
        "SlotArg": ["Agarose_Gel-5"]
    },
    "Execution": {
        "DeviceType": "Ethidium Bromide Waste Bin",
        "Config": {}
    },
    "Postcond": {
        "EmitArgNum": 1,
        "EmitArg": ["Disposal_Complete"]
    }
}

[Requirements]
1. Design the experiment with finer granularity, incorporating more steps to complete the experiment in a more rigorous, complex, and comprehensive manner.
2. There are some missing parameters in the DSL specification. You should generate each step of the DSL program as detailed as possible based on your understanding of the protocol plan.
3. In Precond and Postcond, use formal name of the component to represent the SlotArg and EmitArg of each step. Use serial number to distinguish same component in different flow . The component name should clearly describe the content of the component.

YOUR TASK:
Generate plan in DSL for a protocol for {title}.

Here are some extra details about the protocol:

{details}

You can choose to instantiate the following DSL specification to construct the DSL program:

{DSL}

Your plan in DSL program: